How to disable editing and deletion of domains in the User Panel.
Overview
With this setup, editing and deletion of domains is disabled in the Hosting Control Panel’s domain manager. The domain name is also renewed regardless of renewal invoice being paid or not, so that domains don’t get terminated by unpaid invoices. Domain protection can be configured to be valid for one renewal or for eternity. If domain protection until further notice is activated, it must be ended manually as the domain protection subscription itself can’t be deleted from the Billing Customer Panel.
Ordering the domain protection product
The customer can order the domain protection product on the extra services page in the User Panel. On this page the customer fills out the domain name to be protected and selects a payment method. After pressing Order, validation of domain TLD is done based on acceptableDomainTlds attribute, and the provided domain is checked for existence.
After the order is processed and paid for, domain protection is provisioned. The domain is then marked as domain-protected in Hosting Control Panel > Domain manager, and all editing of the domain is disabled.
The domain protection service is listed in Billing Customer Panel > Subscriptions.
Setting up domain protection
To set up domain protection, the following steps need to be taken:
- Set up one or more products.
- Configure the product as an extra service.
- Configure if shops are used or not.
- Configure provisioning service.
These steps are described in detail below.
Setting up one or more products
- Go to Admin Panel > Products > Products > Add new product.
- Set the following data.
- Provisioning service: DomainProtection
- Product category: Extra service
- Type of Billing: Fixed price and Recurring
- By default, the domain protection product can’t be deleted from the Billing Customer Panel. If this option is desired, add the following to Other data:
- Name: ServiceId
- Value: 00000000-0000-0000-0000-000000000000
- If you want the domain protection product itself to get renewed and not terminated without payment, the following attribute needs to be added in Other data:
- Name: ForceProvision
- Value: SetWhenProvisioning
- Fill out the rest of the properties as you require.
Configuring the product as an extra service
- Configure the following to allow a product to be ordered more than once.
- Name: allowMultiple
- Value: true
- Specify that the product is domain based with the following attributes.
- Name: domainBased
- Value: true
- Define the list of packages in which this product is available.
- Name: packages
- Value: list of package article numbers separated by | character (example: HST-GLDY|HST-GLDQ|HST-GLDM)
- Define the list of domain items for which this product is applicable.
- Name: applicableToArticleNumbers
- Value: list of domain item article numbers separated by | character (example: DMN-COM|DMN-NET|DMN-ORG)
- Configure the system to only accept the order if the provided domain exists in the customer’s subscriptions.
- Name: checkIfDomainExists
- Value: true
- Define the list of TLDs for domain validation when order is submitted.
- Name: acceptableDomainTlds
- Value: list of TLDs for domain validation separated by | character (example: com|net|org)
Configuring if shops are used
- Go to Admin Panel > Products > Products and select to Edit the domain protection product in the list.
- In segment Other data, the attributes specified above need to be added.
Configuring if shops are not used
- Open the Atomia.Web.Plugin.HostingProducts.dll.config file in the BillingCustomerPanel’s bin folder. Usual path is: C:\Program Files (x86)\Atomia\BillingCustomerPanel\bin\Atomia.Web.Plugin.HostingProducts.dll.config
- Add attributes to the file in configuration / hostingProductsConfigurationSection / productsList. See example entry below.
<product id="someid1" articalNumber="DMNPROT" productCategory="ExtraService" resourceKey="DomainProtection"> <customAttributes> <customAttribute name="allowMultiple" value="true"/> <customAttribute name="domainBased" value="true"/> <customAttribute name="packages" value="HST-GLDY|HST-GLDQ|HST-GLDM" /> <customAttribute name="applicableToArticleNumbers" value="DMN-COM|DMN-NET|DMN-ORG" /> <customAttribute name="checkIfDomainExists" value="true" /> <customAttribute name="acceptableDomainTlds" value="com|net|org" /> </customAttributes> </product>
Configuring provisioning service
- Open the Web.config file in the BillingAPI’s folder.
- Add the following configuration to DomainProtection:
<customProduct name="DomainProtection" provisioningService="DomainProtection" handlerClass="Atomia.Billing.Plugins.ProvisioningPlugins.AtomiaProvisioningPlugin.DomainPropertiesHandler, Atomia.Billing.Plugins.ProvisioningPlugins.AtomiaProvisioningPlugin"> <customProductProperties> <property name="DomainPropertyNames" value="DomainProtectionEnabled|ForceProvision" /> <property name="AddToSubscription0" value="true" /> <property name="AddToSubscription1" value="true" /> <property name="DomainPropertyValueDefaultAdd1" value="true" /> <property name="DomainPropertyValueDefaultRemove1" value="false" /> <property name="SetSubscriptionToRecurring" value="true" /> <property name="NoSuspendUnsuspend" value="true" /> </customProductProperties> </customProduct>
- Here is a full list of attributes that can configured and their purposes:
- DomainPropertyNames: List of properties that are affected with provisioning of product. Separated by | character.
- AddToSubscriptionN: Specifies that the
Nth + 1
property from DomainPropertyNames is added/changed as a domain subscription custom attribute. - AddToDomainRegDomainN: Specifies that the
Nth + 1
property from DomainPropertyNames is added/changed as a DomainRegDomain service property. - DomainPropertyValueDefaultAddN: Specifies the value of property which is set when provisioning or unsuspending
Nth + 1
property from DomainPropertyNames. (If not specified for property, default is 1). - DomainPropertyValueDefaultRemoveN: Specifies the value of property which is set when terminating or suspending
Nth + 1
property from DomainPropertyNames. (If not specified for property, default is 0). - SetSubscriptionToRecurring: Sets domain subscription to recurring.
- NoSuspendUnsuspend: Disables Suspend and Unsuspend actions.